#ifndef MENUITEM_H_
#define MENUITEM_H_

class Command;
class CommandList;

class MenuItem
{
public:
	virtual ~MenuItem(){}

protected:
	MenuItem(Command*, CommandList*);

public:
	virtual void click();

private:
	Command* m_pCmd;
	CommandList* m_pCmdList;
};

class CutMenuItem : public MenuItem
{
public:
	CutMenuItem(Command* pCmd, CommandList* pCmdList) : 
	  MenuItem(pCmd, pCmdList){}
};

class CopyMenuItem : public MenuItem
{
public:
	CopyMenuItem(Command* pCmd, CommandList* pCmdList) : 
	  MenuItem(pCmd, pCmdList){}
};

class PasteMenuItem : public MenuItem
{
public:
	PasteMenuItem(Command* pCmd, CommandList* pCmdList) : 
	  MenuItem(pCmd, pCmdList){}
};

#endif // MENUITEM_H_
